package com.kyrie.lib_sys.application.userApplys.service;

import com.kyrie.lib_sys.common.entity.PageResult;
import com.kyrie.lib_sys.common.entity.Result;
import com.kyrie.lib_sys.common.pojo.dto.UserDTO;
import com.kyrie.lib_sys.common.pojo.dto.UserPageQueryDTO;
import com.kyrie.lib_sys.common.pojo.entity.User;
import com.kyrie.lib_sys.common.pojo.vo.UserVO;

import java.util.List;

public interface UserService {

    /**
     * 添加用户
     * @param userDTO
     */
    void insert(UserDTO userDTO);

    /**
     * 注册用户
     * @param userDTO
     */
    Result<UserVO> register(UserDTO userDTO);

    /**
     * 手机号和登录
     *
     * @param userVO
     * @return
     */
     void PCLogin(UserVO userVO);

    /**
     * 用户名密码登录
     *
     * @param userDTO
     * @return 用户信息
     */
    User login(UserDTO userDTO);

    /**
     * 更新用户最后登录时间
     *
     * @param userId
     */
    void updateLastLoginTime(Long userId);

    /**
     * 查询用户
     * @param userDTO
     */
    User queryByCondition(UserDTO userDTO);

    /**
     * 分页查询用户列表
     * @param userPageQueryDTO
     */
    PageResult queryPage(UserPageQueryDTO userPageQueryDTO);

    /**
     * 修改用户信息
     * @param userDTO
     */
    void update(UserDTO userDTO);

    /**
     * 删除用户
     * @param id
     */
    void deleteById(Long id);

    /**
     * 批量插入用户
     * @param userDTOS
     */
    void insertBatch(List<UserDTO> userDTOS);

    /**
     * 批量删除用户
     * @param ids
     */
    void deleteBatch(List<Long> ids);
}
